
10.12.2013, 14:53
|
 |
Быдлокодер;)
|
|
Регистрация: 19.11.2010
Сообщений: 4,338
|
|
Запуск тасков Grunt из Node
Не могу понять, как запустить grunt из ноды, делаю так:
grunt.task.loadTasks('./');
grunt.task.run('default');
Gruntfile загружается, всё ок, но таск не выполняется. Сам таск рабочий и работает через консоль хорошо.
Сейчас делаю через создание дочернего процесса:
var grunt = require('child_process').exec('call node_modules/.bin/grunt.cmd', ['--gruntfile', 'Gruntfile.js']);
grunt.stdout.on('data', function (data) {
});
grunt.stderr.on('data', function (data) {
});
grunt.on('close', function (code) {
});
Работает, но мне не очень нравится такое решение. Мб, кто в курсе?
***
И ещё вопрос: можно ли как то задать шаблон вида:
*.styl => *.css , т.е. все файлы styl компилятся и сохраняются под таким же именем, но с расширением .css ?
Последний раз редактировалось kobezzza, 10.12.2013 в 19:08.
|
|

11.12.2013, 01:30
|
 |
I am Student
|
|
Регистрация: 17.12.2011
Сообщений: 4,415
|
|
kobezzza, тут какой то скринкаст по грант, не смотрел, случайно в твиттере увидил может пригодиться http://css-tricks.com/video-screenca...medium=twitter
__________________
Цитата:
|
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
|
|
|

11.12.2013, 08:13
|
 |
Быдлокодер;)
|
|
Регистрация: 19.11.2010
Сообщений: 4,338
|
|
Спасибо за ссылку, хотя скринкаст оказался довольно бестолковым и если бы у чувака не было бы "словесного поноса", то мог бы уложить его в 5 минут 
|
|

11.12.2013, 19:42
|
 |
I am Student
|
|
Регистрация: 17.12.2011
Сообщений: 4,415
|
|
kobezzza, а для чего вообще нужен грант, а то не особо понял из описания на их сайте? (знаю что вопрос нубский)
__________________
Цитата:
|
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
|
|
|

11.12.2013, 21:31
|
 |
Быдлокодер;)
|
|
Регистрация: 19.11.2010
Сообщений: 4,338
|
|
Сообщение от cyber
|
kobezzza, а для чего вообще нужен грант, а то не особо понял из описания на их сайте? (знаю что вопрос нубский)
|
Для удобного управления тасками в проекте, если ты знаком с Make или Ant, то Grunt - это ровно тоже самое, только написано на JS под ноду и весь его функционал - это веб и обычно он справляется с ними лучше, чем тот же Ant, который создавался больше для языков вроде Java.
Если же то, что я написал выше не послужило ответом на вопрос, то вот более развёрнутый вариант: допустим у тебя есть проект, который стал довольно большим и перед тем, как залить в продакшн тебе необходимо осуществлять так называемую "сборку", а именно: склеить файлы, пожать, провести статический анализ кода, запустить тесты, оптимизировать графику, создать архивы для gzip отдачи и т.д. то очень удобно заиметь файлик, где в декларативной форме просто (и самое главное - коротко) последовательно описываются задачи.
Ну а почему стоит юзать именно Grunt - он стремительно развивается, у него большое комьюнити, его юзают крупные проекты и главное: под него уже существует огромное количество плагинов на любой случай (ну а если вдруг его не оказалось, то его легко написать самому).
Последний раз редактировалось kobezzza, 11.12.2013 в 21:37.
|
|

11.12.2013, 21:42
|
 |
I am Student
|
|
Регистрация: 17.12.2011
Сообщений: 4,415
|
|
kobezzza, спс, плюсануть больше не могу)
__________________
Цитата:
|
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
|
|
|

11.12.2013, 21:47
|
 |
Быдлокодер;)
|
|
Регистрация: 19.11.2010
Сообщений: 4,338
|
|
Сообщение от cyber
|
kobezzza, спс, плюсануть больше не могу)
|
Нез, ничего страшного 
|
|

11.12.2013, 23:30
|
Особый гость
|
|
Регистрация: 02.04.2010
Сообщений: 4,260
|
|
kobezzza,
а зачем запускать таск из js?
var grunt = require('grunt');
console.log(grunt);
Просто в конце вызови grunt.cli();
Последний раз редактировалось monolithed, 11.12.2013 в 23:44.
|
|

12.12.2013, 11:35
|
 |
Быдлокодер;)
|
|
Регистрация: 19.11.2010
Сообщений: 4,338
|
|
Сообщение от monolithed
|
kobezzza,
а зачем запускать таск из js?
var grunt = require('grunt');
console.log(grunt);
Просто в конце вызови grunt.cli();
|
Спасибо! А нужно, чтобы при каждом запуске/перезапуске сервера он пересобирался. Т.к. юзаю MS Azure пакет "Сайт", с настроенной синхронизацией с гитхабом, т.е. я пушу в мастер, и сервер сам перезапускается. Я хз, мб к процессу перезапуска можно приаттачить какойнить .cmd, но из ноды мне это кажется более правильным.
|
|
|
|